package com.vipboot.platform.system.crud.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.vipboot.framework.mybatisplus.annotation.DataColumn;
import com.vipboot.framework.mybatisplus.annotation.DataPermission;
import com.vipboot.platform.system.domain.entity.SysDept;
import com.vipboot.framework.mybatisplus.core.base.mapper.PlusBaseMapper;
import com.vipboot.platform.system.domain.vo.SysDeptVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 部门表 Mapper 接口
 * </p>
 *
 * @author daze
 * @since 2024-12-09
 */
public interface SysDeptMapper extends PlusBaseMapper<SysDept> {

    /**
     * 查询部门管理数据
     *
     * @param queryWrapper 查询条件
     * @return 部门信息集合
     */
    @DataPermission({
            @DataColumn(key = "deptName", value = "dept_id")
    })
    List<SysDeptVo> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);


    /**
     * 统计指定部门ID的部门数量
     *
     * @param deptId 部门ID
     * @return 该部门ID的部门数量
     */
    @DataPermission({
            @DataColumn(key = "deptName", value = "dept_id")
    })
    long countDeptById(Long deptId);
}
